package com.tjec.project.projectLeaderWorkbeanch.mapper;

import com.tjec.project.projectLeaderWorkbeanch.domain.BmsLeaderMember;
import com.tjec.project.system.domain.SysUser;

import java.util.List;
import java.util.Set;

/**
 * 项目负责人人员Mapper接口
 * 
 * @author tjec
 * @date 2020-04-14
 */
public interface BmsLeaderMemberMapper 
{
    /**
     * 查询项目负责人人员
     * 
     * @param guid 项目负责人人员ID
     * @return 项目负责人人员
     */
    public BmsLeaderMember selectBmsLeaderMemberByGuid(String guid);

    /**
     * 查询项目负责人人员列表
     * 
     * @param bmsLeaderMember 项目负责人人员
     * @return 项目负责人人员集合
     */
    public List<BmsLeaderMember> selectBmsLeaderMemberList(BmsLeaderMember bmsLeaderMember);

    /**
     * 新增项目负责人人员
     * 
     * @param bmsLeaderMember 项目负责人人员
     * @return 结果
     */
    public int insertBmsLeaderMember(BmsLeaderMember bmsLeaderMember);

    /**
     * 修改项目负责人人员
     * 
     * @param bmsLeaderMember 项目负责人人员
     * @return 结果
     */
    public int updateBmsLeaderMember(BmsLeaderMember bmsLeaderMember);
    
    public int updateAgencyFlag(BmsLeaderMember bmsLeaderMember);
    
    /**
     * 删除项目负责人人员
     * 
     * @param guid 项目负责人人员ID
     * @return 结果
     */
    public int deleteBmsLeaderMemberByGuid(String guid);

    /**
     * 批量删除项目负责人人员
     * 
     * @param guids 需要删除的数据ID
     * @return 结果
     */
    public int deleteBmsLeaderMemberByGuids(String[] guids);

    /**
     * 查询业务系统用户
     * 不包含在本负责人人员一览已添加用户
     *
     * @param bmsLeaderMember
     * @return 结果
     */
    List<SysUser> selectSysUserList(BmsLeaderMember bmsLeaderMember);
    
    /**
     * 查看是否在项目负责人成员中
     * @param bmsLeaderMember
     * @return
     */
    public int checkLeaderMember(BmsLeaderMember bmsLeaderMember);

    /**
     * 查询负责人人员并且不在项目成员中
     * @param bmsLeaderMember
     * @return
     */
    List<BmsLeaderMember> selectBmsLeaderMemberNoProjectMember(BmsLeaderMember bmsLeaderMember);

    /**
     * 查询项目负责人人员
     * @param bmsLeaderMember
     * @return
     */
    List<BmsLeaderMember> selectBmsLeaderMemberLeaderList(BmsLeaderMember bmsLeaderMember);

    /**
     * 查询项目负责人人员
     * @param guid
     * @return
     */
    List<String> selectUserIdByBmsProjectLeaderGuids(String[] guid);

    List<BmsLeaderMember> selectBmsLeaderMemberByGuids(String[] guids);

    /**
     *管理员授权列表
     * @param leader
     * @return
     */
    List<BmsLeaderMember> selectAdminAuthorizeList(String leader);
    
    /**
     * 代理人授权列表
     * @param leader
     * @return
     */
    List<BmsLeaderMember> selectAgencyList(String leader);
    
    /**
     * 人员清单列表
     * @param bmsLeaderMember
     * @return
     */
    List<BmsLeaderMember> selectBmsLeaderMemberMobileList(BmsLeaderMember bmsLeaderMember);
}
